/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * TMS_GUI.java
 *
 * Created on Nov 8, 2011, 10:01:15 PM
 */

package TMS;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Zachary
 */
public class TMS_GUI extends javax.swing.JFrame {

    /** Creates new form TMS_GUI */
    public TMS_GUI() {
        initComponents();
        tms_subsystem = new TMS();
        display_timer = new javax.swing.Timer(50, new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                display_timer_ActionPerformed(evt);
            }
        });
        display_timer.setRepeats(true);
        display_timer.start();
        this.IntervalMode.setVisible(false);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        trainingModes = new javax.swing.ButtonGroup();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        MainPanel = new javax.swing.JPanel();
        SpeedPanel = new javax.swing.JPanel();
        SpeedUp = new javax.swing.JButton();
        SpeedDown = new javax.swing.JButton();
        StartPanel = new javax.swing.JPanel();
        Start = new javax.swing.JButton();
        Pause = new javax.swing.JButton();
        Stop = new javax.swing.JButton();
        SafetyClip = new javax.swing.JCheckBox();
        InclinePanel = new javax.swing.JPanel();
        InclineUp = new javax.swing.JButton();
        InclineDown = new javax.swing.JButton();
        TrainingModePanel = new javax.swing.JPanel();
        FreeRunMode = new javax.swing.JRadioButton();
        CalorieBurnMode = new javax.swing.JRadioButton();
        TimedRunMode = new javax.swing.JRadioButton();
        IntervalMode = new javax.swing.JRadioButton();
        UserPanel = new javax.swing.JPanel();
        jPanel1 = new javax.swing.JPanel();
        Login = new javax.swing.JButton();
        NewProfile = new javax.swing.JButton();
        jPanel2 = new javax.swing.JPanel();
        jScrollPane2 = new javax.swing.JScrollPane();
        UserHistoryArea = new javax.swing.JTextArea();
        KeyBoardPanel = new javax.swing.JPanel();
        KeyQ = new javax.swing.JButton();
        KeyW = new javax.swing.JButton();
        KeyR = new javax.swing.JButton();
        KeyE = new javax.swing.JButton();
        KeyY = new javax.swing.JButton();
        KeyT = new javax.swing.JButton();
        KeyU = new javax.swing.JButton();
        KeyI = new javax.swing.JButton();
        KeyO = new javax.swing.JButton();
        KeyP = new javax.swing.JButton();
        KeyA = new javax.swing.JButton();
        KeyS = new javax.swing.JButton();
        KeyH = new javax.swing.JButton();
        KeyG = new javax.swing.JButton();
        KeyF = new javax.swing.JButton();
        KeyD = new javax.swing.JButton();
        KeyJ = new javax.swing.JButton();
        KeyX = new javax.swing.JButton();
        KeyK = new javax.swing.JButton();
        KeyL = new javax.swing.JButton();
        KeyC = new javax.swing.JButton();
        KeyV = new javax.swing.JButton();
        KeyZ = new javax.swing.JButton();
        KeyB = new javax.swing.JButton();
        KeyN = new javax.swing.JButton();
        KeyM = new javax.swing.JButton();
        Key1 = new javax.swing.JButton();
        Key2 = new javax.swing.JButton();
        Key3 = new javax.swing.JButton();
        Key4 = new javax.swing.JButton();
        Key5 = new javax.swing.JButton();
        Key6 = new javax.swing.JButton();
        Key7 = new javax.swing.JButton();
        Key8 = new javax.swing.JButton();
        Key9 = new javax.swing.JButton();
        Key0 = new javax.swing.JButton();
        KeyBackSpace = new javax.swing.JButton();
        KeyEnter = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        MainOutputArea = new javax.swing.JTextArea();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setResizable(false);

        jTabbedPane1.setPreferredSize(new java.awt.Dimension(400, 150));

        SpeedPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Speed", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 14))); // NOI18N

        SpeedUp.setText("Increase");
        SpeedUp.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                SpeedUpActionPerformed(evt);
            }
        });

        SpeedDown.setText("Decrease");
        SpeedDown.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                SpeedDownActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout SpeedPanelLayout = new javax.swing.GroupLayout(SpeedPanel);
        SpeedPanel.setLayout(SpeedPanelLayout);
        SpeedPanelLayout.setHorizontalGroup(
            SpeedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, SpeedPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(SpeedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(SpeedDown, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(SpeedUp, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );
        SpeedPanelLayout.setVerticalGroup(
            SpeedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(SpeedPanelLayout.createSequentialGroup()
                .addComponent(SpeedUp, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(SpeedDown, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(115, Short.MAX_VALUE))
        );

        StartPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Start/Stop", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 14))); // NOI18N

        Start.setText("Start");
        Start.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                StartActionPerformed(evt);
            }
        });

        Pause.setText("Pause");
        Pause.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                PauseActionPerformed(evt);
            }
        });

        Stop.setText("Stop");
        Stop.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                StopActionPerformed(evt);
            }
        });

        SafetyClip.setText("Safety Clip");
        SafetyClip.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                SafetyClipActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout StartPanelLayout = new javax.swing.GroupLayout(StartPanel);
        StartPanel.setLayout(StartPanelLayout);
        StartPanelLayout.setHorizontalGroup(
            StartPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(StartPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(StartPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(Pause, javax.swing.GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE)
                    .addComponent(Stop, javax.swing.GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE)
                    .addComponent(Start, javax.swing.GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE)
                    .addComponent(SafetyClip, javax.swing.GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE))
                .addContainerGap(24, Short.MAX_VALUE))
        );
        StartPanelLayout.setVerticalGroup(
            StartPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(StartPanelLayout.createSequentialGroup()
                .addComponent(Start, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Pause, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Stop, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(SafetyClip, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        InclinePanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Inclne", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 12))); // NOI18N

        InclineUp.setText("Increase");
        InclineUp.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                InclineUpActionPerformed(evt);
            }
        });

        InclineDown.setText("Decrease");
        InclineDown.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                InclineDownActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout InclinePanelLayout = new javax.swing.GroupLayout(InclinePanel);
        InclinePanel.setLayout(InclinePanelLayout);
        InclinePanelLayout.setHorizontalGroup(
            InclinePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, InclinePanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(InclinePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(InclineDown, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(InclineUp, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );
        InclinePanelLayout.setVerticalGroup(
            InclinePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(InclinePanelLayout.createSequentialGroup()
                .addComponent(InclineUp, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(InclineDown, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(117, Short.MAX_VALUE))
        );

        TrainingModePanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Training Mode", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 14))); // NOI18N

        trainingModes.add(FreeRunMode);
        FreeRunMode.setSelected(true);
        FreeRunMode.setText("Free Run");
        FreeRunMode.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        FreeRunMode.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                FreeRunModeActionPerformed(evt);
            }
        });

        trainingModes.add(CalorieBurnMode);
        CalorieBurnMode.setText("Calorie Burn");
        CalorieBurnMode.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        CalorieBurnMode.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                CalorieBurnModeActionPerformed(evt);
            }
        });

        trainingModes.add(TimedRunMode);
        TimedRunMode.setText("Timed Run");
        TimedRunMode.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        TimedRunMode.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                TimedRunModeActionPerformed(evt);
            }
        });

        trainingModes.add(IntervalMode);
        IntervalMode.setText("Interval Training");
        IntervalMode.setEnabled(false);
        IntervalMode.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

        javax.swing.GroupLayout TrainingModePanelLayout = new javax.swing.GroupLayout(TrainingModePanel);
        TrainingModePanel.setLayout(TrainingModePanelLayout);
        TrainingModePanelLayout.setHorizontalGroup(
            TrainingModePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(TrainingModePanelLayout.createSequentialGroup()
                .addGap(37, 37, 37)
                .addComponent(FreeRunMode, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(CalorieBurnMode, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(TimedRunMode, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(IntervalMode, javax.swing.GroupLayout.PREFERRED_SIZE, 89, Short.MAX_VALUE)
                .addGap(63, 63, 63))
        );
        TrainingModePanelLayout.setVerticalGroup(
            TrainingModePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(TrainingModePanelLayout.createSequentialGroup()
                .addGroup(TrainingModePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(FreeRunMode, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(CalorieBurnMode, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(TimedRunMode, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(IntervalMode, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGap(14, 14, 14))
        );

        javax.swing.GroupLayout MainPanelLayout = new javax.swing.GroupLayout(MainPanel);
        MainPanel.setLayout(MainPanelLayout);
        MainPanelLayout.setHorizontalGroup(
            MainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(MainPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(MainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(MainPanelLayout.createSequentialGroup()
                        .addComponent(SpeedPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 164, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(StartPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(InclinePanel, javax.swing.GroupLayout.DEFAULT_SIZE, 165, Short.MAX_VALUE))
                    .addComponent(TrainingModePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        MainPanelLayout.setVerticalGroup(
            MainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(MainPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(MainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(InclinePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(StartPanel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(SpeedPanel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(TrainingModePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        jTabbedPane1.addTab("Main", MainPanel);

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "User Profile", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 14))); // NOI18N

        Login.setText("Login/Logout");
        Login.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                LoginActionPerformed(evt);
            }
        });

        NewProfile.setText("New Profile");
        NewProfile.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                NewProfileActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(Login, javax.swing.GroupLayout.DEFAULT_SIZE, 244, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(NewProfile, javax.swing.GroupLayout.DEFAULT_SIZE, 245, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(NewProfile, javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE)
                    .addComponent(Login, javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE))
                .addContainerGap())
        );

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "User History", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 14))); // NOI18N

        UserHistoryArea.setColumns(20);
        UserHistoryArea.setRows(5);
        jScrollPane2.setViewportView(UserHistoryArea);

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 495, Short.MAX_VALUE)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 217, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout UserPanelLayout = new javax.swing.GroupLayout(UserPanel);
        UserPanel.setLayout(UserPanelLayout);
        UserPanelLayout.setHorizontalGroup(
            UserPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, UserPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(UserPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        UserPanelLayout.setVerticalGroup(
            UserPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(UserPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane1.addTab("User", UserPanel);

        KeyQ.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyQ.setText("Q");
        KeyQ.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyQActionPerformed(evt);
            }
        });

        KeyW.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyW.setText("W");
        KeyW.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyWActionPerformed(evt);
            }
        });

        KeyR.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyR.setText("R");
        KeyR.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyRActionPerformed(evt);
            }
        });

        KeyE.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyE.setText("E");
        KeyE.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyEActionPerformed(evt);
            }
        });

        KeyY.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyY.setText("Y");
        KeyY.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyYActionPerformed(evt);
            }
        });

        KeyT.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyT.setText("T");
        KeyT.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyTActionPerformed(evt);
            }
        });

        KeyU.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyU.setText("U");
        KeyU.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyUActionPerformed(evt);
            }
        });

        KeyI.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyI.setText("I");
        KeyI.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyIActionPerformed(evt);
            }
        });

        KeyO.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyO.setText("O");
        KeyO.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyOActionPerformed(evt);
            }
        });

        KeyP.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyP.setText("P");
        KeyP.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyPActionPerformed(evt);
            }
        });

        KeyA.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyA.setText("A");
        KeyA.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyAActionPerformed(evt);
            }
        });

        KeyS.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyS.setText("S");
        KeyS.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeySActionPerformed(evt);
            }
        });

        KeyH.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyH.setText("H");
        KeyH.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyHActionPerformed(evt);
            }
        });

        KeyG.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyG.setText("G");
        KeyG.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyGActionPerformed(evt);
            }
        });

        KeyF.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyF.setText("F");
        KeyF.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyFActionPerformed(evt);
            }
        });

        KeyD.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyD.setText("D");
        KeyD.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyDActionPerformed(evt);
            }
        });

        KeyJ.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyJ.setText("J");
        KeyJ.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyJActionPerformed(evt);
            }
        });

        KeyX.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyX.setText("X");
        KeyX.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyXActionPerformed(evt);
            }
        });

        KeyK.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyK.setText("K");
        KeyK.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyKActionPerformed(evt);
            }
        });

        KeyL.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyL.setText("L");
        KeyL.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyLActionPerformed(evt);
            }
        });

        KeyC.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyC.setText("C");
        KeyC.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyCActionPerformed(evt);
            }
        });

        KeyV.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyV.setText("V");
        KeyV.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyVActionPerformed(evt);
            }
        });

        KeyZ.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyZ.setText("Z");
        KeyZ.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyZActionPerformed(evt);
            }
        });

        KeyB.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyB.setText("B");
        KeyB.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyBActionPerformed(evt);
            }
        });

        KeyN.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyN.setText("N");
        KeyN.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyNActionPerformed(evt);
            }
        });

        KeyM.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyM.setText("M");
        KeyM.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyMActionPerformed(evt);
            }
        });

        Key1.setFont(new java.awt.Font("Tahoma", 1, 10));
        Key1.setText("1");
        Key1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Key1ActionPerformed(evt);
            }
        });

        Key2.setFont(new java.awt.Font("Tahoma", 1, 10));
        Key2.setText("2");
        Key2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Key2ActionPerformed(evt);
            }
        });

        Key3.setFont(new java.awt.Font("Tahoma", 1, 10));
        Key3.setText("3");
        Key3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Key3ActionPerformed(evt);
            }
        });

        Key4.setFont(new java.awt.Font("Tahoma", 1, 10));
        Key4.setText("4");
        Key4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Key4ActionPerformed(evt);
            }
        });

        Key5.setFont(new java.awt.Font("Tahoma", 1, 10));
        Key5.setText("5");
        Key5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Key5ActionPerformed(evt);
            }
        });

        Key6.setFont(new java.awt.Font("Tahoma", 1, 10));
        Key6.setText("6");
        Key6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Key6ActionPerformed(evt);
            }
        });

        Key7.setFont(new java.awt.Font("Tahoma", 1, 10));
        Key7.setText("7");
        Key7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Key7ActionPerformed(evt);
            }
        });

        Key8.setFont(new java.awt.Font("Tahoma", 1, 10));
        Key8.setText("8");
        Key8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Key8ActionPerformed(evt);
            }
        });

        Key9.setFont(new java.awt.Font("Tahoma", 1, 10));
        Key9.setText("9");
        Key9.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Key9ActionPerformed(evt);
            }
        });

        Key0.setFont(new java.awt.Font("Tahoma", 1, 10));
        Key0.setText("0");
        Key0.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Key0ActionPerformed(evt);
            }
        });

        KeyBackSpace.setFont(new java.awt.Font("Tahoma", 0, 8));
        KeyBackSpace.setText("<X");
        KeyBackSpace.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyBackSpaceActionPerformed(evt);
            }
        });

        KeyEnter.setFont(new java.awt.Font("Tahoma", 1, 10));
        KeyEnter.setText("Enter");
        KeyEnter.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KeyEnterActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout KeyBoardPanelLayout = new javax.swing.GroupLayout(KeyBoardPanel);
        KeyBoardPanel.setLayout(KeyBoardPanelLayout);
        KeyBoardPanelLayout.setHorizontalGroup(
            KeyBoardPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(KeyBoardPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(KeyBoardPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(KeyBoardPanelLayout.createSequentialGroup()
                        .addComponent(KeyQ, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(KeyW, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(KeyE, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(KeyR, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(KeyT, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(KeyY, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(KeyU, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(KeyI, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(KeyO, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(KeyP, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(KeyBoardPanelLayout.createSequentialGroup()
                        .addGroup(KeyBoardPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addGroup(KeyBoardPanelLayout.createSequentialGroup()
                                .addComponent(KeyZ, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(KeyX, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(KeyC, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(KeyV, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(KeyB, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(KeyN, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(KeyM, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(KeyBoardPanelLayout.createSequentialGroup()
                                .addComponent(KeyA, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(KeyS, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(KeyD, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(KeyF, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(KeyG, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(KeyH, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(KeyJ, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(KeyK, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(KeyBoardPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(KeyBoardPanelLayout.createSequentialGroup()
                                .addComponent(KeyL, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(KeyBackSpace, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(KeyEnter, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                    .addGroup(KeyBoardPanelLayout.createSequentialGroup()
                        .addComponent(Key1, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Key2, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Key3, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Key4, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Key5, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Key6, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Key7, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Key8, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Key9, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Key0, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(13, Short.MAX_VALUE))
        );
        KeyBoardPanelLayout.setVerticalGroup(
            KeyBoardPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(KeyBoardPanelLayout.createSequentialGroup()
                .addGap(44, 44, 44)
                .addGroup(KeyBoardPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(Key1, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(Key2, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(Key3, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(Key4, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(Key5, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(Key6, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(Key7, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(Key8, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(Key9, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(Key0, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(7, 7, 7)
                .addGroup(KeyBoardPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(KeyQ, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyW, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyE, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyR, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyT, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyY, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyU, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyI, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyO, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyP, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(KeyBoardPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(KeyA, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyS, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyD, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyF, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyG, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyH, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyJ, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyK, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyL, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyBackSpace, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(KeyBoardPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(KeyZ, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyX, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyC, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyV, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyB, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyN, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyM, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(KeyEnter, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(142, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Keyboard", KeyBoardPanel);

        MainOutputArea.setColumns(20);
        MainOutputArea.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
        MainOutputArea.setRows(5);
        MainOutputArea.setPreferredSize(new java.awt.Dimension(400, 150));
        jScrollPane1.setViewportView(MainOutputArea);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 184, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 374, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void display_timer_ActionPerformed(java.awt.event.ActionEvent evt){
        this.MainOutputArea.setText(Output_Device.get_output());
        if (!this.UserHistoryArea.getText().equals(tms_subsystem.user_history()))
            this.UserHistoryArea.setText(tms_subsystem.user_history());
   }

    private void Key0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Key0ActionPerformed
        // TODO add your handling code here:
        Input_Device.append("0");
    }//GEN-LAST:event_Key0ActionPerformed

    private void KeyIActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyIActionPerformed
        // TODO add your handling code here:
        Input_Device.append("I");
    }//GEN-LAST:event_KeyIActionPerformed

    private void KeyHActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyHActionPerformed
        // TODO add your handling code here:
        Input_Device.append("H");
    }//GEN-LAST:event_KeyHActionPerformed

    private void KeyLActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyLActionPerformed
        // TODO add your handling code here:
        Input_Device.append("L");
    }//GEN-LAST:event_KeyLActionPerformed

    private void KeyBackSpaceActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyBackSpaceActionPerformed
        // TODO add your handling code here:
        Input_Device.backspace();
    }//GEN-LAST:event_KeyBackSpaceActionPerformed

    private void KeyEnterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyEnterActionPerformed
        // TODO add your handling code here:
        Input_Device.set_ready(true);
    }//GEN-LAST:event_KeyEnterActionPerformed

    private void StartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_StartActionPerformed
        // TODO add your handling code here:
        this.FreeRunMode.setSelected(true);
        tms_subsystem.Start_Workout();
    }//GEN-LAST:event_StartActionPerformed

    private void PauseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_PauseActionPerformed
        // TODO add your handling code here:
        tms_subsystem.Pause_Workout();
    }//GEN-LAST:event_PauseActionPerformed

    private void StopActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_StopActionPerformed
        try {
            // TODO add your handling code here:
            tms_subsystem.Stop_Workout();
            this.FreeRunMode.setSelected(true);
        } catch (FileNotFoundException ex) {
            Logger.getLogger(TMS_GUI.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(TMS_GUI.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_StopActionPerformed

    private void SafetyClipActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_SafetyClipActionPerformed
        // TODO add your handling code here:
        if (!Safety_Clip.is_engaged() && this.SafetyClip.isSelected()){
            Safety_Clip.engage();
        }
        else {
            if (Safety_Clip.is_engaged() && !this.SafetyClip.isSelected())
                Safety_Clip.disengage();
        }
        
    }//GEN-LAST:event_SafetyClipActionPerformed

    private void SpeedUpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_SpeedUpActionPerformed
        // TODO add your handling code here:
        tms_subsystem.Speed_Increase();
    }//GEN-LAST:event_SpeedUpActionPerformed

    private void SpeedDownActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_SpeedDownActionPerformed
        // TODO add your handling code here:
        tms_subsystem.Speed_Decrease();
    }//GEN-LAST:event_SpeedDownActionPerformed

    private void InclineUpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_InclineUpActionPerformed
        // TODO add your handling code here:
        tms_subsystem.Incline_Increase();
    }//GEN-LAST:event_InclineUpActionPerformed

    private void InclineDownActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_InclineDownActionPerformed
        // TODO add your handling code here:
        tms_subsystem.Incline_Decrease();
    }//GEN-LAST:event_InclineDownActionPerformed

    private void Key1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Key1ActionPerformed
        // TODO add your handling code here:
        Input_Device.append("1");
    }//GEN-LAST:event_Key1ActionPerformed

    private void Key2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Key2ActionPerformed
        // TODO add your handling code here:
        Input_Device.append("2");
    }//GEN-LAST:event_Key2ActionPerformed

    private void Key3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Key3ActionPerformed
        // TODO add your handling code here:
        Input_Device.append("3");
    }//GEN-LAST:event_Key3ActionPerformed

    private void Key4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Key4ActionPerformed
        // TODO add your handling code here:
        Input_Device.append("4");
    }//GEN-LAST:event_Key4ActionPerformed

    private void Key5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Key5ActionPerformed
        // TODO add your handling code here:
        Input_Device.append("5");
    }//GEN-LAST:event_Key5ActionPerformed

    private void Key6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Key6ActionPerformed
        // TODO add your handling code here:
        Input_Device.append("6");
    }//GEN-LAST:event_Key6ActionPerformed

    private void Key7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Key7ActionPerformed
        // TODO add your handling code here:
        Input_Device.append("7");
    }//GEN-LAST:event_Key7ActionPerformed

    private void Key8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Key8ActionPerformed
        // TODO add your handling code here:
        Input_Device.append("8");
    }//GEN-LAST:event_Key8ActionPerformed

    private void Key9ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Key9ActionPerformed
        // TODO add your handling code here:
        Input_Device.append("9");
    }//GEN-LAST:event_Key9ActionPerformed

    private void KeyQActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyQActionPerformed
        // TODO add your handling code here:
        Input_Device.append("Q");
    }//GEN-LAST:event_KeyQActionPerformed

    private void KeyWActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyWActionPerformed
        // TODO add your handling code here:
        Input_Device.append("W");
    }//GEN-LAST:event_KeyWActionPerformed

    private void KeyEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyEActionPerformed
        // TODO add your handling code here:
        Input_Device.append("E");
    }//GEN-LAST:event_KeyEActionPerformed

    private void KeyRActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyRActionPerformed
        // TODO add your handling code here:
        Input_Device.append("R");
    }//GEN-LAST:event_KeyRActionPerformed

    private void KeyTActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyTActionPerformed
        // TODO add your handling code here:
        Input_Device.append("T");
    }//GEN-LAST:event_KeyTActionPerformed

    private void KeyYActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyYActionPerformed
        // TODO add your handling code here:
        Input_Device.append("Y");
    }//GEN-LAST:event_KeyYActionPerformed

    private void KeyUActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyUActionPerformed
        // TODO add your handling code here:
        Input_Device.append("U");
    }//GEN-LAST:event_KeyUActionPerformed

    private void KeyOActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyOActionPerformed
        // TODO add your handling code here:
        Input_Device.append("O");
    }//GEN-LAST:event_KeyOActionPerformed

    private void KeyPActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyPActionPerformed
        // TODO add your handling code here:
        Input_Device.append("P");
    }//GEN-LAST:event_KeyPActionPerformed

    private void KeyAActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyAActionPerformed
        // TODO add your handling code here:
        Input_Device.append("A");
    }//GEN-LAST:event_KeyAActionPerformed

    private void KeySActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeySActionPerformed
        // TODO add your handling code here:
        Input_Device.append("S");
    }//GEN-LAST:event_KeySActionPerformed

    private void KeyDActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyDActionPerformed
        // TODO add your handling code here:
        Input_Device.append("D");
    }//GEN-LAST:event_KeyDActionPerformed

    private void KeyFActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyFActionPerformed
        // TODO add your handling code here:
        Input_Device.append("F");
    }//GEN-LAST:event_KeyFActionPerformed

    private void KeyGActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyGActionPerformed
        // TODO add your handling code here:
        Input_Device.append("G");
    }//GEN-LAST:event_KeyGActionPerformed

    private void KeyJActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyJActionPerformed
        // TODO add your handling code here:
        Input_Device.append("J");
    }//GEN-LAST:event_KeyJActionPerformed

    private void KeyKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyKActionPerformed
        // TODO add your handling code here:
        Input_Device.append("K");
    }//GEN-LAST:event_KeyKActionPerformed

    private void KeyZActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyZActionPerformed
        // TODO add your handling code here:
        Input_Device.append("Z");
    }//GEN-LAST:event_KeyZActionPerformed

    private void KeyXActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyXActionPerformed
        // TODO add your handling code here:
        Input_Device.append("X");
    }//GEN-LAST:event_KeyXActionPerformed

    private void KeyCActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyCActionPerformed
        // TODO add your handling code here:
        Input_Device.append("C");
    }//GEN-LAST:event_KeyCActionPerformed

    private void KeyVActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyVActionPerformed
        // TODO add your handling code here:
        Input_Device.append("V");
    }//GEN-LAST:event_KeyVActionPerformed

    private void KeyBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyBActionPerformed
        // TODO add your handling code here:
        Input_Device.append("B");
    }//GEN-LAST:event_KeyBActionPerformed

    private void KeyNActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyNActionPerformed
        // TODO add your handling code here:
        Input_Device.append("N");
    }//GEN-LAST:event_KeyNActionPerformed

    private void KeyMActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KeyMActionPerformed
        // TODO add your handling code here:
        Input_Device.append("M");
    }//GEN-LAST:event_KeyMActionPerformed

    private void LoginActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_LoginActionPerformed
        try {
            tms_subsystem.login();
        } catch (FileNotFoundException ex) {
            Logger.getLogger(TMS_GUI.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(TMS_GUI.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_LoginActionPerformed

    private void NewProfileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_NewProfileActionPerformed
        try {
            // TODO add your handling code here:
            tms_subsystem.new_user();
        } catch (FileNotFoundException ex) {
            Logger.getLogger(TMS_GUI.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(TMS_GUI.class.getName()).log(Level.SEVERE, null, ex);
        }

    }//GEN-LAST:event_NewProfileActionPerformed

    private void FreeRunModeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_FreeRunModeActionPerformed
        // TODO add your handling code here:
        tms_subsystem.set_workout_profile(workout_settings.Workout_Mode.FREERUN, workout_settings.Workout_Dificulty.EASY);
    }//GEN-LAST:event_FreeRunModeActionPerformed

    private void CalorieBurnModeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_CalorieBurnModeActionPerformed
        // TODO add your handling code here:
        tms_subsystem.set_workout_profile(workout_settings.Workout_Mode.CALORIE, workout_settings.Workout_Dificulty.EASY);
    }//GEN-LAST:event_CalorieBurnModeActionPerformed

    private void TimedRunModeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_TimedRunModeActionPerformed
        // TODO add your handling code here:
        tms_subsystem.set_workout_profile(workout_settings.Workout_Mode.TIMED, workout_settings.Workout_Dificulty.EASY);
    }//GEN-LAST:event_TimedRunModeActionPerformed

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TMS_GUI().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JRadioButton CalorieBurnMode;
    private javax.swing.JRadioButton FreeRunMode;
    private javax.swing.JButton InclineDown;
    private javax.swing.JPanel InclinePanel;
    private javax.swing.JButton InclineUp;
    private javax.swing.JRadioButton IntervalMode;
    private javax.swing.JButton Key0;
    private javax.swing.JButton Key1;
    private javax.swing.JButton Key2;
    private javax.swing.JButton Key3;
    private javax.swing.JButton Key4;
    private javax.swing.JButton Key5;
    private javax.swing.JButton Key6;
    private javax.swing.JButton Key7;
    private javax.swing.JButton Key8;
    private javax.swing.JButton Key9;
    private javax.swing.JButton KeyA;
    private javax.swing.JButton KeyB;
    private javax.swing.JButton KeyBackSpace;
    private javax.swing.JPanel KeyBoardPanel;
    private javax.swing.JButton KeyC;
    private javax.swing.JButton KeyD;
    private javax.swing.JButton KeyE;
    private javax.swing.JButton KeyEnter;
    private javax.swing.JButton KeyF;
    private javax.swing.JButton KeyG;
    private javax.swing.JButton KeyH;
    private javax.swing.JButton KeyI;
    private javax.swing.JButton KeyJ;
    private javax.swing.JButton KeyK;
    private javax.swing.JButton KeyL;
    private javax.swing.JButton KeyM;
    private javax.swing.JButton KeyN;
    private javax.swing.JButton KeyO;
    private javax.swing.JButton KeyP;
    private javax.swing.JButton KeyQ;
    private javax.swing.JButton KeyR;
    private javax.swing.JButton KeyS;
    private javax.swing.JButton KeyT;
    private javax.swing.JButton KeyU;
    private javax.swing.JButton KeyV;
    private javax.swing.JButton KeyW;
    private javax.swing.JButton KeyX;
    private javax.swing.JButton KeyY;
    private javax.swing.JButton KeyZ;
    private javax.swing.JButton Login;
    private javax.swing.JTextArea MainOutputArea;
    private javax.swing.JPanel MainPanel;
    private javax.swing.JButton NewProfile;
    private javax.swing.JButton Pause;
    private javax.swing.JCheckBox SafetyClip;
    private javax.swing.JButton SpeedDown;
    private javax.swing.JPanel SpeedPanel;
    private javax.swing.JButton SpeedUp;
    private javax.swing.JButton Start;
    private javax.swing.JPanel StartPanel;
    private javax.swing.JButton Stop;
    private javax.swing.JRadioButton TimedRunMode;
    private javax.swing.JPanel TrainingModePanel;
    private javax.swing.JTextArea UserHistoryArea;
    private javax.swing.JPanel UserPanel;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.ButtonGroup trainingModes;
    // End of variables declaration//GEN-END:variables
    private javax.swing.Timer display_timer;
    private TMS tms_subsystem;
}
